package com.fadis.watch;


import com.fadis.expire.ExpireMgmr;

/**
 * 要watch一个key，首先要明确是【谁】来watch
 * 对于redis，每一个连接就是一个user，watch只对当前user生效
 * 但这里是嵌入式，user其实只有一个，那就是当前应用
 */
public class FadisWatcher {

    public static void beforeVisitKey(String key){
        // 已经过期的，无论如何都得删掉
        boolean deleted = ExpireMgmr.checkAndDelete(key);
//        if(!deleted && shouldTouchExpireTime){
//            // 没删掉的，如果本来有expire的，可能需要touch
//            ExpireMgmr.touch(key);
//        }
    }

    public static void onKeyCreated(String key){
        //ExpireMgmr.touch(key);
    }

    public static void onKeyUpdated(String key){
        // key被update不一定走put，可能只是修改value中的成员，如list，set的add等，
    }

    public static void onKeyDeleted(String key){
        ExpireMgmr.deleteExpireInfo(key);
    }

    public static boolean onKeySelected(String key){
        return true;
    }


}
